package com.xyazm.inventory.service;

import com.xyazm.inventory.domain.param.*;

/**
 * 库存
 * @author xuyou
 * @date 2022年06月04日 22:34
 */
public interface IInventoryService {

    /**
     * 锁定商品库存
     * @author xuyou
     * 2022/6/4 0004 22:35
     * @param param
     * @return java.lang.Boolean
    */
    void deductProductStock(DeductProductParam param);

    /**
     * 释放商品库存
     * @author xuyou
     * @date: 2022/7/1 11:28
     * @param: param
     * @return: java.lang.Boolean
     */
    void releaseProductStock(ReleaseProductStockParam param);

    /**
     * 新增商品库存 3
     * @author xuyou
     * 2022/8/6 0006 23:00
     * @param param
    */
    void addProductStock(AddProductStockParam param);

    /**
     * 修改商品库存 3
     * @author xuyou
     * 2022/8/6 0006 23:00
     * @param param
     */
    void modifyProductStock(ModifyProductStockParam param);

    /**
     * 同步商品sku库存数据到缓存 3
     * @author xuyou
     * 2022/8/6 0006 23:00
     * @param param
     */
    void syncStockToCache(SyncStockToCacheParam param);
}
